| Filename | (eval 1105)[/usr/share/perl5/Sub/Quote.pm:5] |
| Statements | Executed 0 statements in 0s |
| Eval Invoked At | /usr/share/perl5/Sub/Quote.pm line 5 |
| Sibling evals | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 2 | 2 | 2 | 40µs | 1.55ms | DBIx::Class::Storage::BlockRunner::new |
| 1 | 1 | 1 | 19µs | 38µs | Sub::Quote::BEGIN@4.2965 |
| 1 | 1 | 1 | 8µs | 8µs | Method::Generate::Constructor::BEGIN@10.2966 |
| 1 | 1 | 1 | 7µs | 7µs | DBIx::Class::Storage::BlockRunner::BEGIN@74 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | { | ||||
| 2 | my $_QUOTED = ${$_[1]->{"\$_QUOTED"}}; | ||||
| 3 | my $_UNQUOTED = ${$_[1]->{"\$_UNQUOTED"}}; | ||||
| 4 | 2 | 56µs | # spent 38µs (19+19) within Sub::Quote::BEGIN@4.2965 which was called:
# once (19µs+19µs) by Sub::Quote::_clean_eval at line 4 # spent 38µs making 1 call to Sub::Quote::BEGIN@4.2965
# spent 19µs making 1 call to warnings::unimport | ||
| 5 | # spent 1.55ms (40µs+1.51) within DBIx::Class::Storage::BlockRunner::new which was called 2 times, avg 775µs/call:
# once (11µs+1.51ms) by DBIx::Class::Storage::DBI::dbh_do at line 855 of DBIx/Class/Storage/DBI.pm
# once (29µs+1µs) by DBIx::Class::Storage::DBI::dbh_do at line 56 of Sub/Defer.pm | ||||
| 6 | $_QUOTED if 0; | ||||
| 7 | $_UNQUOTED if 0; | ||||
| 8 | # BEGIN quote_sub PRELUDE | ||||
| 9 | package Method::Generate::Constructor; | ||||
| 10 | # spent 8µs within Method::Generate::Constructor::BEGIN@10.2966 which was called:
# once (8µs+0s) by Sub::Quote::_clean_eval at line 15 | ||||
| 11 | $^H = "2018"; | ||||
| 12 | ${^WARNING_BITS} = "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"; | ||||
| 13 | %^H = ( | ||||
| 14 | ); | ||||
| 15 | 1 | 8µs | } # spent 8µs making 1 call to Method::Generate::Constructor::BEGIN@10.2966 | ||
| 16 | # END quote_sub PRELUDE | ||||
| 17 | my $class = shift; | ||||
| 18 | $class = ref($class) if ref($class); | ||||
| 19 | if ($class ne "DBIx::Class::Storage::BlockRunner") { | ||||
| 20 | if ($Moo::MAKERS{$class}) { | ||||
| 21 | if ($Moo::MAKERS{$class}{constructor}) { | ||||
| 22 | return $class->DBIx::Class::Storage::BlockRunner::SUPER::new(@_); | ||||
| 23 | } | ||||
| 24 | Moo->_constructor_maker_for($class); | ||||
| 25 | return $class->new(@_); | ||||
| 26 | } elsif ($INC{"Moose.pm"} and my $meta = Class::MOP::get_metaclass_by_name($class)) { | ||||
| 27 | return $meta->new_object( | ||||
| 28 | $class->can("BUILDARGS") ? $class->BUILDARGS(@_) | ||||
| 29 | : $class->Moo::Object::BUILDARGS(@_) | ||||
| 30 | ); | ||||
| 31 | } | ||||
| 32 | } | ||||
| 33 | my $args; | ||||
| 34 | if ( scalar @_ == 1 ) { | ||||
| 35 | unless ( defined $_[0] && ref $_[0] eq 'HASH' ) { | ||||
| 36 | die "Single parameters to new() must be a HASH ref" | ||||
| 37 | ." data => ". $_[0] ."\n"; | ||||
| 38 | } | ||||
| 39 | $args = { %{ $_[0] } }; | ||||
| 40 | } | ||||
| 41 | elsif ( @_ % 2 ) { | ||||
| 42 | die "The new() method for $class expects a hash reference or a" | ||||
| 43 | . " key/value list. You passed an odd number of arguments\n"; | ||||
| 44 | } | ||||
| 45 | else { | ||||
| 46 | $args = {@_}; | ||||
| 47 | } | ||||
| 48 | if (my @missing = grep !exists $args->{$_}, qw(retry_handler storage wrap_txn)) { | ||||
| 49 | die "Missing required arguments: ".join(', ', sort @missing); | ||||
| 50 | } | ||||
| 51 | my $new = bless({}, $class);; | ||||
| 52 | $new->{"max_attempts"} = ( | ||||
| 53 | exists $args->{"max_attempts"} | ||||
| 54 | ? $args->{"max_attempts"} | ||||
| 55 | : "20" | ||||
| 56 | ); | ||||
| 57 | if (exists $args->{"retry_debug"}) { | ||||
| 58 | $new->{"retry_debug"} = $args->{"retry_debug"}; | ||||
| 59 | } | ||||
| 60 | if (exists $args->{"retry_handler"}) { | ||||
| 61 | do { | ||||
| 62 | local $Method::Generate::Accessor::CurrentAttribute = { | ||||
| 63 | init_arg => "retry_handler", | ||||
| 64 | name => "retry_handler", | ||||
| 65 | step => "isa check", | ||||
| 66 | }; | ||||
| 67 | my $_error; | ||||
| 68 | { | ||||
| 69 | my $_old_error = $@; | ||||
| 70 | if (!eval { | ||||
| 71 | $@ = $_old_error; | ||||
| 72 | do { local @_ = ($args->{"retry_handler"}); # BEGIN quote_sub PRELUDE | ||||
| 73 | package DBIx::Class::Storage::BlockRunner; | ||||
| 74 | # spent 7µs within DBIx::Class::Storage::BlockRunner::BEGIN@74 which was called:
# once (7µs+0s) by Sub::Quote::_clean_eval at line 79 | ||||
| 75 | $^H = "133090"; | ||||
| 76 | ${^WARNING_BITS} = "UUUUUUUUUUUUUUUUU"; | ||||
| 77 | %^H = ( | ||||
| 78 | ); | ||||
| 79 | 1 | 7µs | } # spent 7µs making 1 call to DBIx::Class::Storage::BlockRunner::BEGIN@74 | ||
| 80 | # END quote_sub PRELUDE | ||||
| 81 | |||||
| 82 | 1 | 1µs | (Scalar::Util::reftype($_[0])||'') eq 'CODE' # spent 1µs making 1 call to Scalar::Util::reftype | ||
| 83 | or DBIx::Class::Exception->throw('retry_handler must be a CODE reference') | ||||
| 84 | }; | ||||
| 85 | 1; | ||||
| 86 | }) { | ||||
| 87 | $_error = $@; | ||||
| 88 | if (!ref $_error) { | ||||
| 89 | $_error = "isa check for \"retry_handler\" failed: ".$_error; | ||||
| 90 | } | ||||
| 91 | } | ||||
| 92 | $@ = $_old_error; | ||||
| 93 | } | ||||
| 94 | die $_error if $_error; | ||||
| 95 | } | ||||
| 96 | ; | ||||
| 97 | $new->{"retry_handler"} = $args->{"retry_handler"}; | ||||
| 98 | } | ||||
| 99 | if (exists $args->{"storage"}) { | ||||
| 100 | $new->{"storage"} = $args->{"storage"}; | ||||
| 101 | } | ||||
| 102 | if (exists $args->{"wrap_txn"}) { | ||||
| 103 | $new->{"wrap_txn"} = $args->{"wrap_txn"}; | ||||
| 104 | } | ||||
| 105 | return $new; | ||||
| 106 | } | ||||
| 107 | $$_UNQUOTED = \&DBIx::Class::Storage::BlockRunner::new | ||||
| 108 | } | ||||
| 109 | 1; | ||||
| 110 | |||||
| 111 | ; |